import { udp } from '@cscec/udp-mobile-ui';
import { message } from 'antd';
import Speech from 'speak-tts';

const speech = new Speech()
const CreatNewSpeech=()=>{
  // const grammar = new webkitSpeechGrammar()
  // console.log(grammar)
  // const gramList = new webkitSpeechGrammarList()
  // console.log(gramList)
    // 基础API存在性检查
    if (!('speechSynthesis' in window) || !('SpeechSynthesisUtterance' in window)) {
      udp.alert('失败，没有speech')
      return false;
    }
    try {
      // 尝试创建实例并设置基本属性
      const utterance = new SpeechSynthesisUtterance();
      utterance.text = 'test';
      utterance.volume = 0.1; // 使用较小音量避免打扰
      utterance.rate = 1;
      utterance.pitch = 1;
      // 可选：检查是否有可用语音
      const voices = window.speechSynthesis.getVoices();
      if (voices.length === 0) {
         udp.message("SpeechSynthesis: No voices available.");
          // 不一定完全不可用，可能需异步加载语音
      }
      udp.message('创建成功')
      return true;
  } catch (error) {
     udp.message("创建失败:",);
      return false;
  }
}
if (speech.hasBrowserSupport()) {
  // 检测浏览器是否支持，returns a boolean
  udp.message('语音引擎加载成功')
}else{
  udp.message('不支持,创建新的！')
  CreatNewSpeech()
}


speech
  .init({
    volume: 1, // 音量0-1
    lang: 'en-US', // 语言 en-US
    rate: 0.7, // 语速1正常语速，2倍语速就写2
    pitch: 1, // 音调
    voice: 'Microsoft Ava Online (Natural) - English (United States)', //支持Microsoft Huihui - Chinese (Simplified, PRC),Microsoft Kangkang - Chinese (Simplified, PRC),Microsoft Yaoyao - Chinese (Simplified, PRC)
    listeners: {
      // 事件
      onvoiceschanged: (voices) => {
        // console.log('事件声音已更改', voices);
      }
    }
  })
  .then((data) => {
    console.log('语音已准备好，声音可用', data)
  })
  .catch(()=>{
    udp.message('语音加载失败')
  })

export function voice(text) {
  speech.speak({
    text: text, //这里使用文字或者i18n 都可以 看自己需求
  })
}